<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../">
<head>
  <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Installing Logtalk &mdash; The Logtalk Handbook v3.93.0-b01 documentation</title>
      <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
      <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" />
      <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=396eccfe" />

  
  <!--[if lt IE 9]>
    <script src="../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
        <script src="../_static/jquery.js?v=5d32c60e"></script>
        <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
        <script src="../_static/documentation_options.js?v=c8100655"></script>
        <script src="../_static/doctools.js?v=9a2dae69"></script>
        <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    <script src="../_static/js/theme.js"></script>
    <!-- begin favicon -->
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
    <link rel="manifest" href="/site.webmanifest" />
    <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
    <meta name="msapplication-TileColor" content="#355b95" />
    <meta name="theme-color" content="#ffffff" />
    <!-- end favicon -->
    
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Prolog integration and migration" href="migration.html" />
    <link rel="prev" title="Performance" href="performance.html" />
   
</head>

<body class="wy-body-for-nav"> 
  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >

          
          
          <a href="../index.html" class="icon icon-home">
            The Logtalk Handbook
              <img src="../_static/logtalk.gif" class="logo" alt="Logo"/>
          </a>
              <div class="version">
                3.93.0
              </div>
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
    
              <p class="caption" role="heading"><span class="caption-text">Contents</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="index.html">User Manual</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="declarative.html">Declarative object-oriented programming</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html">Main features</a></li>
<li class="toctree-l2"><a class="reference internal" href="nomenclature.html">Nomenclature</a></li>
<li class="toctree-l2"><a class="reference internal" href="messages.html">Messages</a></li>
<li class="toctree-l2"><a class="reference internal" href="objects.html">Objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="protocols.html">Protocols</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html">Categories</a></li>
<li class="toctree-l2"><a class="reference internal" href="predicates.html">Predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="inheritance.html">Inheritance</a></li>
<li class="toctree-l2"><a class="reference internal" href="events.html">Event-driven programming</a></li>
<li class="toctree-l2"><a class="reference internal" href="threads.html">Multi-threading programming</a></li>
<li class="toctree-l2"><a class="reference internal" href="errors.html">Error handling</a></li>
<li class="toctree-l2"><a class="reference internal" href="reflection.html">Reflection</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html">Writing and running applications</a></li>
<li class="toctree-l2"><a class="reference internal" href="printing.html">Printing messages and asking questions</a></li>
<li class="toctree-l2"><a class="reference internal" href="expansion.html">Term and goal expansion</a></li>
<li class="toctree-l2"><a class="reference internal" href="documenting.html">Documenting</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html">Debugging</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html">Performance</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Installing Logtalk</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#hardware-and-software-requirements">Hardware and software requirements</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#computer-and-operating-system">Computer and operating system</a></li>
<li class="toctree-l4"><a class="reference internal" href="#prolog-compiler">Prolog compiler</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#logtalk-installers">Logtalk installers</a></li>
<li class="toctree-l3"><a class="reference internal" href="#source-distribution">Source distribution</a></li>
<li class="toctree-l3"><a class="reference internal" href="#distribution-overview">Distribution overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#adapter-files">Adapter files</a></li>
<li class="toctree-l4"><a class="reference internal" href="#compiler-and-runtime">Compiler and runtime</a></li>
<li class="toctree-l4"><a class="reference internal" href="#library">Library</a></li>
<li class="toctree-l4"><a class="reference internal" href="#examples">Examples</a></li>
<li class="toctree-l4"><a class="reference internal" href="#logtalk-source-files">Logtalk source files</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="migration.html">Prolog integration and migration</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../refman/index.html">Reference Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../faq/index.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../devtools/index.html">Developer Tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../libraries/index.html">Libraries</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ports/index.html">Ports</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contributions/index.html">Contributions</a></li>
<li class="toctree-l1"><a class="reference internal" href="../glossary.html">Glossary</a></li>
<li class="toctree-l1"><a class="reference internal" href="../bibliography.html">Bibliography</a></li>
<li class="toctree-l1"><a class="reference internal" href="../genindex.html">Index</a></li>
</ul>

    <p class="caption"><span class="caption-text">External Contents</span></p>
    <ul>
    <li class="toctree-l1"><a class="reference internal" href="../../apis/index.html">APIs</a></li>
    <li class="toctree-l1"><a class="reference internal" href="https://logtalk.org">Logtalk website</a></li>
    <li class="toctree-l1"><a class="reference internal" href="https://github.com/LogtalkDotOrg/logtalk3">GitHub repo</a></li>
    </ul>
  
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../index.html">The Logtalk Handbook</a>
      </nav>

      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
          <li class="breadcrumb-item"><a href="index.html">User Manual</a></li>
      <li class="breadcrumb-item active">Installing Logtalk</li>
      <li class="wy-breadcrumbs-aside">
              <a href="https://github.com/LogtalkDotOrg/logtalk3/blob/master/docs/handbook/sources/userman/installing.rst" class="fa fa-github"> Edit on GitHub</a>
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
             
  <section id="installing-logtalk">
<span id="installing-installing"></span><h1>Installing Logtalk<a class="headerlink" href="#installing-logtalk" title="Link to this heading"></a></h1>
<p>This page provides an overview of Logtalk installation requirements and
instructions and a description of the files contained in the Logtalk
distribution. For detailed, up-to-date installation and configuration
instructions, please see the <code class="docutils literal notranslate"><span class="pre">README.md</span></code>, <code class="docutils literal notranslate"><span class="pre">INSTALL.md</span></code>, and
<code class="docutils literal notranslate"><span class="pre">CUSTOMIZE.md</span></code> files distributed with Logtalk. The broad compatibility
of Logtalk, both with Prolog compilers and operating-systems, together
with all the possible user scenarios, means that installation can vary
from very simple, by running an installer or a couple of scripts, to the
need of patching both Logtalk and Prolog compilers to workaround the
lack of strong Prolog standards or to cope with the requirements of less
common operating-systems.</p>
<p>The preferred installation scenario is to have Logtalk installed in a
system-wide location, thus available for all users, and a local copy of
user-modifiable files on each user home directory (even when you are the
single user of your computer). This scenario allows each user to
independently customize Logtalk and to freely modify the provided
libraries and programming examples. Logtalk installers, installation
shell scripts, and Prolog integration scripts favor this installation
scenario, although alternative installation scenarios are always
possible. The installers set two environment variables, <code class="docutils literal notranslate"><span class="pre">LOGTALKHOME</span></code>
and <code class="docutils literal notranslate"><span class="pre">LOGTALKUSER</span></code>, pointing, respectively, to the Logtalk installation
folder and to the Logtalk user folder.</p>
<p>User applications should preferably be kept outside of the Logtalk user
folder created by the installation process, as updating Logtalk
often results in updating the contents of this folder. If your
applications depend on customizations to the distribution files, backup
those changes before updating Logtalk.</p>
<section id="hardware-and-software-requirements">
<span id="installing-requirements"></span><h2>Hardware and software requirements<a class="headerlink" href="#hardware-and-software-requirements" title="Link to this heading"></a></h2>
<section id="computer-and-operating-system">
<span id="installing-computer"></span><h3>Computer and operating system<a class="headerlink" href="#computer-and-operating-system" title="Link to this heading"></a></h3>
<p>Logtalk is compatible with almost any computer/operating-system with a
modern, standards-compliant, Prolog compiler available.</p>
</section>
<section id="prolog-compiler">
<span id="installing-compiler"></span><h3>Prolog compiler<a class="headerlink" href="#prolog-compiler" title="Link to this heading"></a></h3>
<p>Logtalk requires a <a class="reference internal" href="../glossary.html#term-backend-Prolog-compiler"><span class="xref std std-term">backend Prolog compiler</span></a> supporting official and
de facto standards. Capabilities needed by Logtalk that are not defined in
the official ISO Prolog Core standard include:</p>
<ul class="simple">
<li><p>access to predicate properties</p></li>
<li><p>operating-system access predicates</p></li>
<li><p>de facto standard predicates not (yet) specified in the official
standard</p></li>
</ul>
<p>Logtalk needs access to the predicate property <code class="docutils literal notranslate"><span class="pre">built_in</span></code> to properly
compile objects and categories that contain Prolog built-in predicate
calls. In addition, some Logtalk built-ins need to know the
dynamic/static status of predicates to ensure correct application. The
ISO standard for Prolog modules defines a <code class="docutils literal notranslate"><span class="pre">predicate_property/2</span></code>
predicate that is already implemented by most Prolog compilers. Note
that if these capabilities are not built-in the user cannot easily
define them.</p>
<p>For optimal performance, Logtalk requires that the Prolog compiler
supports <strong>first-argument indexing</strong> for both static and dynamic code
(most modern compilers support this feature).</p>
<p>Since most Prolog compilers are moving closer to the ISO Prolog standard
<a class="reference internal" href="../bibliography.html#iso95" id="id1"><span>[ISO95]</span></a>, it is advisable that you try
to use the most recent version of your favorite Prolog compiler.</p>
</section>
</section>
<section id="logtalk-installers">
<span id="installing-installers"></span><h2>Logtalk installers<a class="headerlink" href="#logtalk-installers" title="Link to this heading"></a></h2>
<p>Logtalk installers are available for macOS, Linux, and Microsoft
Windows. Depending on the chosen installer, some tasks (e.g., setting
environment variables or integrating Logtalk with some Prolog compilers)
may need to be performed manually.</p>
</section>
<section id="source-distribution">
<span id="installing-sources"></span><h2>Source distribution<a class="headerlink" href="#source-distribution" title="Link to this heading"></a></h2>
<p>Logtalk sources are available in a <code class="docutils literal notranslate"><span class="pre">tar</span></code> archive compressed with
<code class="docutils literal notranslate"><span class="pre">bzip2</span></code>, <code class="docutils literal notranslate"><span class="pre">lgt3xxx.tar.bz2</span></code>. You may expand the archive by using a
decompressing utility or by typing the following commands at the
command-line:</p>
<div class="highlight-logtalk notranslate"><div class="highlight"><pre><span></span><span class="c">% tar -jxvf lgt3xxx.tar.bz2</span>
</pre></div>
</div>
<p>This will create a sub-directory named <code class="docutils literal notranslate"><span class="pre">lgt3xxx</span></code> in your current
directory. Almost all files in the Logtalk distribution are text files.
Different operating-systems use different end-of-line codes for text
files. Ensure that your decompressing utility converts the end-of-lines
of all text files to match your operating system.</p>
</section>
<section id="distribution-overview">
<span id="installing-organization"></span><h2>Distribution overview<a class="headerlink" href="#distribution-overview" title="Link to this heading"></a></h2>
<p>In the Logtalk installation directory, you will find the following files
and directories:</p>
<p><code class="docutils literal notranslate"><span class="pre">ACKNOWLEDGMENTS.md</span></code> - List of authors, contributors, sponsors, and open source credits</p>
<p><code class="docutils literal notranslate"><span class="pre">BIBLIOGRAPHY.bib</span></code> – Logtalk bibliography in BibTeX format</p>
<p><code class="docutils literal notranslate"><span class="pre">CITATION.cff</span></code> - Information on how to cite Logtalk</p>
<p><code class="docutils literal notranslate"><span class="pre">CODE_OF_CONDUCT.md</span></code> - Code of conduct for contributors and users posting on support forums</p>
<p><code class="docutils literal notranslate"><span class="pre">CUSTOMIZE.md</span></code> – Logtalk end-user customization instructions</p>
<p><code class="docutils literal notranslate"><span class="pre">INSTALL.md</span></code> – Logtalk installation instructions</p>
<p><code class="docutils literal notranslate"><span class="pre">LICENSE.txt</span></code> – Logtalk user license</p>
<p><code class="docutils literal notranslate"><span class="pre">NOTICE.txt</span></code> – Logtalk copyright notice</p>
<p><code class="docutils literal notranslate"><span class="pre">QUICK_START.md</span></code> – Quick start instructions for those that do not like
to read manuals</p>
<p><code class="docutils literal notranslate"><span class="pre">README.md</span></code> – several useful pieces of information</p>
<p><code class="docutils literal notranslate"><span class="pre">RELEASE_NOTES.md</span></code> – release notes for this version</p>
<p><code class="docutils literal notranslate"><span class="pre">UPGRADING.md</span></code> – instructions on how to upgrade your programs to the
current Logtalk version</p>
<p><code class="docutils literal notranslate"><span class="pre">VERSION.txt</span></code> – file containing the current Logtalk version number
(used for compatibility checking when upgrading Logtalk)</p>
<dl>
<dt><code class="docutils literal notranslate"><span class="pre">adapters</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – notes on the provided adapter files</p>
<p><code class="docutils literal notranslate"><span class="pre">template.pl</span></code> – template adapter file</p>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – specific adapter files</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">coding</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – notes on syntax highlighter and text editor support files
providing syntax coloring for publishing and editing Logtalk source code</p>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – syntax coloring support files</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">contributions</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – notes on the user-contributed code</p>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – user-contributed code files</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">core</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – notes on the current status of the compiler and runtime</p>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – core source files</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">docs/apis</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – notes on the provided documentation for core, library,
tools, and contributions entities</p>
<p><code class="docutils literal notranslate"><span class="pre">index.html</span></code> – root document for all entities documentation</p>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – other entity documentation files</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">docs/handbook</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – notes on the provided documentation</p>
<p><code class="docutils literal notranslate"><span class="pre">bibliography.html</span></code> – bibliography</p>
<p><code class="docutils literal notranslate"><span class="pre">glossary.html</span></code> – glossary</p>
<p><code class="docutils literal notranslate"><span class="pre">index.html</span></code> – root document for all documentation</p>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – other documentation files</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">docs/man</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">...</span></code> – POSIX man pages for the shell scripts</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">examples</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – short description of the provided examples</p>
<dl>
<dt><code class="docutils literal notranslate"><span class="pre">ack</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – example notes and sample queries</p>
<p><code class="docutils literal notranslate"><span class="pre">loader.lgt</span></code> – loader utility file for the example objects</p>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – ack example source files</p>
</dd>
</dl>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – other examples</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">integration</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – notes on scripts for Logtalk integration with Prolog compilers</p>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – Prolog integration scripts</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">library</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – short description of the library contents</p>
<p><code class="docutils literal notranslate"><span class="pre">all_loader.lgt</span></code> – loader utility file for all library entities</p>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – library source files</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">paths</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – description on how to setup library and example paths</p>
<p><code class="docutils literal notranslate"><span class="pre">paths.pl</span></code> – default library and example paths</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">ports</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – description of included ports of third-party software</p>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – ports</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">samples</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">loader-sample.lgt</span></code> – sample loader file for user applications</p>
<p><code class="docutils literal notranslate"><span class="pre">settings-sample.lgt</span></code> – sample file for user-defined Logtalk settings</p>
<p><code class="docutils literal notranslate"><span class="pre">tester-sample.lgt</span></code> – sample file for helping to automate running user application unit tests</p>
<p><code class="docutils literal notranslate"><span class="pre">tests-sample.lgt</span></code> – sample file for writing user application unit tests</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">scratch</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – notes on the scratch directory</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">scripts</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – notes on scripts for Logtalk user setup, packaging, and installation</p>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – packaging, installation, and setup scripts</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">tests</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – notes on the current status of the unit tests</p>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – unit tests for built-in features</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">tools</span></code></dt><dd><p><code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> – notes on the provided programming tools</p>
<p><code class="docutils literal notranslate"><span class="pre">...</span></code> – programming tools</p>
</dd>
</dl>
<section id="adapter-files">
<span id="installing-adapters"></span><h3>Adapter files<a class="headerlink" href="#adapter-files" title="Link to this heading"></a></h3>
<p>Adapter files provide the glue code between the Logtalk compiler/runtime
and a Prolog compiler. Each adapter file contains two sets of
predicates: ISO Prolog standard predicates and directives not built-in
in the target Prolog compiler and Logtalk specific predicates.</p>
<p>Logtalk already includes ready-to-use adapter files for most academic
and commercial Prolog compilers. If an adapter file is not available for
the compiler that you intend to use, then you need to build a new one,
starting from the included <code class="docutils literal notranslate"><span class="pre">template.pl</span></code> file. Start by making a copy
of the template file. Carefully check (or complete if needed) each
listed definition. If your Prolog compiler conforms to the ISO standard,
this task should only take you a few minutes. In most cases, you can
borrow code from the predefined adapter files. If you are unsure
that your Prolog compiler provides all the ISO predicates needed by
Logtalk, try to run the system by setting the unknown predicate error
handler to report as an error any call to a missing predicate. Better
yet, switch to a modern, ISO-compliant, Prolog compiler. If you send me
your adapter file, with a reference to the target Prolog compiler, maybe
I can include it in the next release of Logtalk.</p>
<p>The adapter files specify <em>default</em> values for most of the Logtalk
<a class="reference internal" href="programming.html#programming-flags"><span class="std std-ref">compiler flags</span></a>. They also specify values for
read-only flags that are used to describe Prolog backend-specific features.</p>
</section>
<section id="compiler-and-runtime">
<span id="installing-runtime"></span><h3>Compiler and runtime<a class="headerlink" href="#compiler-and-runtime" title="Link to this heading"></a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">core</span></code> sub-directory contains the Prolog and Logtalk source files that
implement the Logtalk compiler and the Logtalk runtime. The compiler and
the runtime may be split in two (or more) separate files or combined into
a single file, depending on the Logtalk release that you are installing.</p>
</section>
<section id="library">
<span id="installing-library"></span><h3>Library<a class="headerlink" href="#library" title="Link to this heading"></a></h3>
<p>The Logtalk distribution includes a standard library of useful objects,
categories, and protocols. Read the corresponding <code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code> file for
details about the library contents.</p>
</section>
<section id="examples">
<span id="installing-examples"></span><h3>Examples<a class="headerlink" href="#examples" title="Link to this heading"></a></h3>
<p>The Logtalk distribution includes a large number of programming examples.
The sources of each one of these examples can be found included in a
subdirectory with the same name, inside the directory examples. The
majority of these examples include tests and a file named <code class="docutils literal notranslate"><span class="pre">SCRIPT.txt</span></code>
with sample calls. Some examples may depend on other examples and
library objects to work properly. Read the corresponding <code class="docutils literal notranslate"><span class="pre">NOTES.md</span></code>
file for details before running an example.</p>
</section>
<section id="logtalk-source-files">
<span id="installing-entities"></span><h3>Logtalk source files<a class="headerlink" href="#logtalk-source-files" title="Link to this heading"></a></h3>
<p>Logtalk source files are text files containing one or more entity
definitions (objects, categories, or protocols). The Logtalk source
files may also contain plain Prolog code. The extension <code class="docutils literal notranslate"><span class="pre">.lgt</span></code> is
normally used. Logtalk compiles these files to plain Prolog by appending
to the file name a suffix derived from the extension and by replacing
the <code class="docutils literal notranslate"><span class="pre">.lgt</span></code> extension with <code class="docutils literal notranslate"><span class="pre">.pl</span></code> (<code class="docutils literal notranslate"><span class="pre">.pl</span></code> is the default Prolog
extension; if your Prolog compiler expects the Prolog source filenames
to end with a specific, different extension, you can set it in the
corresponding adapter file).</p>
</section>
</section>
</section>


           </div>
          </div>
          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
        <a href="performance.html" class="btn btn-neutral float-left" title="Performance" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
        <a href="migration.html" class="btn btn-neutral float-right" title="Prolog integration and migration" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 1998-2025, Paulo Moura.</p>
  </div>

  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    provided by <a href="https://readthedocs.org">Read the Docs</a>.
   

</footer>
        </div>
      </div>
    </section>
  </div>
  <script>
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>